#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

#define NLOOP 5000
int counter; /* incremented by thread. */

void *doit(void *);
int main(int argc, char **argv)
{
    pthread_t tid_a, tid_b;

    pthread_create(&tid_a, NULL, &doit, NULL);
    pthread_create(&tid_b, NULL, &doit, NULL);

    /* wait for two threads terminated. */
    pthread_join(tid_a, NULL);
    pthread_join(tid_b, NULL);

    printf("counter:%d\n", counter);
    return 0;
}

void *doit(void *vptr)
{
    int i, val;

    for (i = 0; i < NLOOP; i++) {
        val = counter;
//        printf("%x: %d\n", (unsigned int)pthread_self(), val + 1);
        counter = val + 1;
    }
    return NULL;
}

